1. Field of the Invention
The present invention relates to providing security in distributed computer systems. More specifically, the present invention relates to a method and an apparatus for delegating operations involved in providing digital signatures to a digital signature server.
2. Related Art
Digital signatures have the potential to revolutionize electronic commerce. By using digital signatures it is possible to provide support for non-repudiation of transactions that take place across a network. It is also possible to facilitate strong authentication between unknown parties in a transaction.
In spite of all of the strong assurances digital signatures provide through complex mathematical operations, practical deployment of digital signatures is not able to provide the same functionality as notarized paper and pen based signatures. Digital certificates are not easy to create, not easy to understand, and not easy to use for most people. Consequently, people do not understand how to protect their keys, how to facilitate revocation, or how to carry digital certificates with them when they travel.
Besides getting the initial certificate, the user also has to worry about certificate expiry, certificate removal, self-identification, time of certificate issuance, the appropriate key size for the given application, and selecting between the different certificates that the user may acquire from different places. In this case, the problem becomes very similar to the problem of remembering and selecting the appropriate password for different applications.
Furthermore, if people change their roles within a company, the current model requires the existing certificate to be revoked because the existing certificate was attached to a certain authorization level. Because people frequently change their roles, this can increase the overhead of the public key infrastructure (PKI) management system.
It is also desirable to associate some type authorization with digital certificates. For example, just because an employee is in possession of a certificate does not mean the employee should be able to order $100,000 worth of goods.
It is additionally desirable to be able to use certificates to delegate powers at appropriate times. For example, if the CEO of a company is traveling, the CEO may want to delegate some of his powers to his secretary or to a Vice President, but only for a limited time and only for limited capabilities. Note that it is impractical to push decision-making processes and enforcement of business rules to an application server because the application server may reside outside of the company.
Today, authorization is controlled by the application server, which means that the authorization database at the remote server has to be kept up to date with changes within the enterprise. Controlling authorization at the application server is error-prone, and the application server is difficult to keep in sync all the time. Furthermore, a person's authorization changes not only when the person leaves the company, but also when the person's role changes within the company. Even, when the person's role does not change within the company, some of the person's authorization levels may change.
Furthermore, if an employee is fired, a company would ideally like to revoke any certificates held by the employee immediately. This revocation is presently accomplished by pushing the problem back to the application. Because of the complex revocation process, very few applications implement certificate revocation, and thus transactions remain exposed to certificate misuse.
There is also the problem of supporting multiple people with the same role. For example, a company may have a number of purchasing officers. In this case, application services are not so much interested in which specific purchasing officer bought their improvement, but whether the request was made by a purchasing officer of the company. Also, as multiple people come and leave this specific job, the certificate has to be kept valid.
Companies are additionally concerned that a certificate and corresponding private key may be stolen from a user's desktop.
What is needed is a method and an apparatus for facilitating the use of digital signatures that is relatively free of the above-described difficulties.